Поліморфізм

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2010
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Програмування

Частина тексту файла

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра ЕОМ Звіт з лабораторної роботи № 8 з дисципліни: Програмування ч. 2 (ООП) на тему: “Поліморфізм” Тема роботи: Поліморфізм Мета роботи: познайомитися з поліморфізмом і віртуальними функціями. Завдання: Базовий клас: class Resource { protected: int id; bool isUsed; char* title; char* author; public: Resource(int number) ; virtual ~ Resource() ; virtual bool TakeResource (); virtual bool GiveBackResource(); virtual void PrintInfo(); virtual bool Status() {return isUsed;} }; Resource() – конструктор базового класу. Ініціалізує змінну id та isUsed. Виділяє пам’ять під title та author. ~ Resource() – деструктор базового класу. TakeResource() – встановлює змінну isUsed=1 (виводить на екран повідомлення). GiveBackResource() – встановлює змінну isUsed=0 (виводить на екран повідомлення). PrintInfo () – виводить інформацію про ресурс. Status() – повертає стан ресурсу. Похідний клас Book. Атрибути: int pages; int year; Похідний клас CD. Атрибути: int cdType; Визначити конструктор та деструктор (!вивільняти всі ресурси!) класу. В основній програмі створити декілька ресурсів та продемонструвати процес їхнього використання. Створити вказівники на базовий клас і виділити пам’ять під об’єкти похідного класу. Текст програми: //------------------------------- main.cpp ---------------------------------- #include "Resource.h" #include <stdio.h> void main(void) { //Масив вказівників на базові об'єкти Resource *res[4]; //Кожному вказівнику виділяється пам'ять під об'экти похыдного класу res[0]=new cd(342145,"Rammstein","Sonne",5); res[1]=new cd(343495,"Rock'n'Roll","blablabla",3); res[2]=new Book(124366,"Taras Schewchenko","Kobzar",1984,543); res[3]=new Book(731284,"Charlse Dickens","Ostriw Skarbiw",1994,256); //Перший диск і друга книжка використовуються res[0]->TakeResource(); res[3]->TakeResource(); cout << endl; //Вивід інформації про ресурси for(int i=0;i<4;i++) { if(res[i]!=NULL) res[i]->PrintInfo(); cout<<endl; } //Вивільнення динамічно виділеної пам'яті for(i=0;i<4;i++) if(res[i]!=NULL) delete res[i]; getchar(); } //------------------------------- Resource.h -------------------------------- #include <iostream.h> //------------------- Клас ресурс class Resource { protected: int id; bool isUsed; char* title; char* author; public: //Конструктор Resource(int number) ; //Деструктор virtual ~ Resource() ; //Ресурс використовується virtual bool TakeResource (); //Ресурс не використовується virtual bool GiveBackResource(); //Вивід інформації про ресурс virtual void PrintInfo(); //Інформація чи використовується ресурс virtual bool Status(){return isUsed;} }; //---------------- Похідний клас cd-диск class cd:public Resource { private: int cdType; public: //Конструктор cd(int number,char *aut, char *title, int cT); //Деструктор ~cd(); //Вивід інформації про ресурс virtual void PrintInfo(); }; //---------------- Похідний клас книжка class Book:public Resource { private: int year; int pages; public: //Конструктор Book(int number,char *a, char *t, int y, int p); //Деструктор ~Book(); //Вивід інформації про ресурс virtual void PrintInfo(); }; //------------------------------- Resource.cpp ------------------------------ #include "Resource.h" //Конструктор Resource::Resource(int number) { isUsed = 0; id = number; } //Деструктор Resource::~Resource() { } //Ресурс використовується bool Resource::TakeResource() { isUsed = 1; cout << "Resource " << id << " is used." << endl; return isUsed; } //Ресурс не використовується bool Resource::GiveBackResource() { isUsed = 0; cout << "Resource " << id << " is not used." <...
Антиботан аватар за замовчуванням

19.11.2013 20:11

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини